This invention relates to a system and method for providing and orchestrating auxiliary services. A typical computing system or computer system allows authorized users to perform the tasks deemed important to the owner of the system. However, these systems may also perform many auxiliary services that enhance but do not directly contribute to completion of the authorized tasks. Auxiliary services, which may include services such as virus protection and data protection, may degrade the productivity of personal computer users to the point where the system is considered unavailable while they are running. On physical servers and virtual servers, the number of clients that can be supported and the functionality that can be provided to them may also be degraded when auxiliary services are run. Degradation in performance due to running auxiliary services may be described in terms of impact on productivity, scalability, and functionality.
As an example of impact on productivity, the consumers of a computing system cannot effectively use it when the response time of the applications they are using is no longer considered interactive. Typically, it is desirable to make authorized consumers of a computing system as productive as possible while safeguarding the data from unauthorized access. Auxiliary services may include data protection and virus protection, and there are many other auxiliary services that can influence productivity, particularly when several such services are run concurrently.
Auxiliary services may affect scalability of a server computing system whose resources are being used to provide auxiliary services in addition to its primary purpose, to provide services to client computing systems. Insofar as the servers are performing auxiliary services, they are not performing their primary purpose. Scalability, i.e., the number of clients which can be supported by a server at any one time, is diminished when auxiliary services are also being performed.
Functionality may be affected by operation of auxiliary services on a system. The capabilities of application services may be affected when they require consumption of resources that cannot be satisfied concurrently with the demands of auxiliary services. Thus, reducing the consumption of resources by auxiliary services that are shared by application services can improve both the scalability and the functionality of application services. For example, more comprehensive virus protection can be provided when more resources are available. In business transactions, more analysis may be performed on transactions when more resources are available.
As described herein, execution of auxiliary services on a computing system may have significant impact on performance in various respects. There is a need, therefore, for an improved method, article of manufacture, and apparatus for performing auxiliary services in a manner that reduces performance degradation of a system.